Scan-based stimulation of electronic circuits with scan patterns of input signals is used widely for several purposes, including testing the accuracy of the circuit by comparing observed responses to expected responses. Test pattern generation methodologies have matured and have been widely applied in high volume manufacturing (HVM). However, conventional stuck-at scan patterns are no longer sufficient to achieve high product quality in nanometer technologies. Resistive bridges and vias, power drops, cross-talk noise effect and other such undesirable characteristics may manifest themselves in subtle timing changes that require at-speed tests to detect. As a result, at-speed testing has become a desirable ingredient for ensuring product quality in circuit manufacturing. At-speed scan patterns typically consist of a relatively slow initial scan operation followed by two or more fast clock events applied at or near functional frequency. One of the challenges in generating at-speed scan tests is avoiding false failures on the tester due to exercising paths in the circuit that are not designed to propagate logic values within a single clock cycle. These paths are generally referred to as timing exception paths, since they are “excepted” from the single clock cycle requirement for some reason. Accordingly, at-speed test patterns also refer to scan patterns containing multiple clock events either from the same clock or from different clocks at frequencies where such timing exception paths may affect circuit response. Timing exception paths include, but are not limited to, false paths, multi-cycle paths, conditional false paths, and conditional multi-cycle paths, for instance.
False paths include those paths in a circuit that are not exercisable in the functional mode of operation, but may be exercisable during scan-based stimulation, for instance. Static timing analysis tools typically ignore these false paths when determining the timing performance of an integrated circuit. Consequently, the signal propagation delay along a false path is usually not known. However, during scan-based testing a false path can be sensitized. A false path is considered sensitized, for instance, if a change in values at the input of the path causes a change in logic values at the output of the path. Such changes may include pure transitions (e.g., 1→0 or 0→1) or glitches (e.g., 0→1→0, or 1→0→1). Thus, the scan-in operation may load values into scan cells upstream of the false path that sensitize the false path with a value that would not ordinarily be produced during normal operation of the circuit. Because the signal propagation delay along the false path is typically not known, the sensitization of the false path can result in unknown states being produced. If these unknown states are not properly accounted for during response generation, the expected responses will likely be incorrect, resulting in circuit simulation results that are inaccurate.
For purposes of this disclosure, a multi-cycle path refers to a path of a circuit or circuit portion that has a signal propagation delay that is more than one clock cycle. Multi-cycle paths can also be sensitized during scan-based operations. Because a transition in the signal at the beginning of a multi-cycle path does not propagate to the end of the path in a single clock cycle, sensitization of a multi-cycle path will also result in the generation of unknown states. Again, if these unknown states are not properly accounted for during response generation, the responses produced will likely be incorrect. Conditional false paths are false paths defined with respect to Boolean conditions. If the associated condition is violated for some reason, the effect of the false path should desirably be considered.
The timing exception paths are typically derived from timing exception information and constraints provided by designers to Static Timing Analysis (STA) tools, synthesis tools, and/or layout tools. Among other things, they allow the tools to better optimize a design by relaxing timing constraints and overriding the default single-cycle clock constraint where specified. Timing exception data is usually provided in the form of constructs in Synopsys Design Constraints (SDC). Multi-cycle paths can also be derived from Standard Delay Format (SDF) data that specifies the timing information of cells and nets in a circuit.
To ensure correct operation of sequential circuit elements, data and control inputs are desirably held constant for specified time periods before and after any clock events. In this context, the time period that the inputs are desirably held constant before the clock event is referred to as setup time, and the time period that the inputs are desirably held constant after the clock event is called hold-time. A timing exception path with a setup time violation does not meet the setup time requirements. A timing exception path with a hold-time violation does not meet the hold-time requirements. Timing exception paths with setup time violations may affect the response of a circuit stimulated with at-speed scan patterns, whereas timing exception paths with hold-time violations may affect the response of a circuit stimulated with any scan pattern.
Transitions that propagate along timing exception paths during test pattern application can lead to capturing unreliable data. One way to handle these timing exception paths is to use cell constraints and/or to apply pattern masks at the starting points and the end points of the timing exception paths. By doing so, any transition that occurs at a starting point or end point of a timing exception path can be eliminated. This method, however, can produce pessimistic results, because the complete path information can be lost when generating cell constraints and pattern masks. Thus, the quality of a test may be unnecessarily poor. Further, the process of generating cell constraints and pattern masks is typically performed manually and is often tedious. Still further, for some complicated timing exception paths, the generation of a set of constraints and masks may not be possible. Thus, for instance, some of the test patterns produced may fail in the tester. Hence, the test coverage may drop, and the test quality may suffer. This also lowers the efficiency of on-chip scan compression schemes. Thus, reducing the unknown values in the response patterns is desirable for generating a complete set of responses, which in the testing environment, results in improving both test coverage and test compression, for instance.